Next | Prev | Up | Top | Contents | Index
User-Level and Kernel-Level Addressing
In a user-level program you can perform PIO and certain types of DMA operations (see Chapter 4, "User-Level Access to VME and EISA"), but you do not program these in terms of the physical addresses mapped to the VME bus. Instead, you call on the services of a kernel-level device driver to map a portion of VME address space into the address space of your process. The requested segment of VME space is mapped dynamically to a segment of your user-level address space--a segment that can differ from one run of the program to the next.
In a kernel-level device driver, you program PIO and DMA operations in terms of specific addresses in kernel space--memory addresses that are mapped to specified addresses in the VME bus address space. The mapping is either permanent, established by the system hardware, or dynamic, set up temporarily by a kernel function.
Note: The remainder of this chapter has direct meaning only for kernel-level drivers, which must deal with physical mappings of VME space.
Next | Prev | Up | Top | Contents | Index